﻿#ifndef MYROWDELEGATE_H
#define MYROWDELEGATE_H

#include <QObject>
#include <QSet>
#include <QStyledItemDelegate>
#include <QPainter>

/* QTableView委托类，用作快速标记行颜色 */
class MyRowDelegate : public QStyledItemDelegate
{
    Q_OBJECT
public:
    MyRowDelegate(QObject *parent=nullptr);


    QSet<int> &getGreenRows();
    void addGreenRows(const QSet<int> &rows);
    bool isRowGreen(int row);
    void clearGreenRows();
    void removeGreenRow(int row);
    void addGreenRow(int row);
    void setGreenRows(const QSet<int> &rows);
protected:
    void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override;
private:
    QSet<int> greenRows; // 使用QSet存储需要高亮的行号
};

#endif // MYROWDELEGATE_H
